package com.qa.service;

import com.qa.common.result.Result;
import com.qa.pojo.dto.NoteAddDTO;
import com.qa.pojo.dto.NoteSelfQueryDTO;
import com.qa.pojo.dto.NoteUpdateDTO;

import java.util.List;

public interface NoteService {
    /**
     * 根据题目查询(公开、存在的)笔记,带有创建者昵称
     *
     * @param questionId 题目id
     * @return Result
     */
    Result getNotesByQuestionId(Long questionId);

    /**
     * 添加笔记
     *
     * @param noteAddDTO 笔记
     * @return Result
     */
    Result addNote(NoteAddDTO noteAddDTO);

    /**
     * 条件查询自己的笔记
     *
     * @param noteSelfQueryDTO 查询条件
     * @return Result
     */
    Result getNotesByCondition(NoteSelfQueryDTO noteSelfQueryDTO);

    /**
     * 更新笔记
     *
     * @param noteUpdateDTO 笔记
     * @return Result
     */
    Result updateNote(NoteUpdateDTO noteUpdateDTO);

    /**
     * 删除笔记
     *
     * @param noteId 笔记id
     * @return Result
     */
    Result deleteNote(Long noteId);

    /**
     * 批量删除笔记
     *
     * @param ids 笔记id
     * @return Result
     */
    Result deleteNotes(List<Long> ids);
}
